home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
graphics
/
plant0.zip
/
PLANT.DOC
< prev
next >
Wrap
Text File
|
1993-10-07
|
12KB
|
263 lines
PLANT v0.50a (10/07/93)
Copyright (c) 1993 by Robert Bryerton
CIS[73747,433] GRAPHDEV forum
This program is freely distributable.
----------INTRODUCTION
PLANT is a small utility used for creating 'organic' plant-like objects
using a simple 'fractal' formula. The generated output file can then be
used as an include file for the POV-Ray v1.0 and v2.0 or Polyray v1.6
raytracers. It also writes CTDS input files.
----------WHAT'S NEW
v0.50a Added POV-Ray v2.0 support
Added cone output for (much) smoother appearance.
This option is NOT available for POV 1.0 output.
New command line switches...NOTE that some have changed
Added ability to output only parts of plant
Refined texture writing methods... you can now specify if you want
to use 1 'global' texture (to image or color map, for example)
instead of the default 4 colors.
v0.40a original program released
----------FEATURES
2D 'wire-frame' display of object while it is being created.
This allows you to try out many different combinations of parameters
without having to render each time to see the object. Pretty primitive,
but it works. Requires VGA or better. Display is optional.
Nested bounding boxes.
This speeds up renderering time dramatically using POV 1.0 . I've
also gotten 6 to 10% increases in speed with Polyray in addition
to using the autobounding feature in Polyray. This option must be
specified on the command line now. Note that if you are using
POV 2.0, the object will render MUCH faster WITHOUT using the
bounding box option.
----------HARDWARE REQUIREMENTS
80286 or higher, with or without a math coprocessor. If the program senses
one, it will be used, speeding execution by about 300%. This is not really
an issue as the 'typical' output file takes about 10 seconds to generate.
See below for typical timings.
----------FILES INCLUDED
DESERT.PI A Polyray scene file...just extra junk basically!
PLANT.PI Basic Polyray scene file for default object
PLANT.POV Basic POV-Ray 2.0 scene file for default object
PLANT_1.POV Basic POV-Ray 1.0 scene file for default object
PLANT.DOC This file
PLANT.EXE DOS executable program
PLANT.MAK MS C++ v8.00 make file
PLANT050.CPP Source code
----------PROGRAM USAGE
PLANT is easy to use since it is interactive. Just type PLANT at the DOS
prompt and enter the parameters required. Most of the questions are straight
forward. The parameters requested are briefly defined as follows with
the defaults show in brackets:
1 POV 2.0
2 POV 1.0
3 Polyray
4 CTDS
Number for format? [1]:
Simple enough. Pick a number. Default is POV 2.0
Ouput filename? [plant.inc]:
Enter the output file name.
Union name? [plant]:
The name of the output file 'include' object.
Number of branches ? [4]:
This will make 4 long branches, each subdividing into 4 smaller ones,
and so on. Values larger than 7 can created VERY large files. You can
control the division with the "Divide branches by" parameter described
below.
Maximum # of spheres per branch ? [60]:
This is the starting value for the # of spheres in each branch,
which then will be divided by the "Divide branches by" parameter
which is described below. Note that if you are using cone output
(default), roughly 1 cone will be generated for each sphere.
This only slows down the render by about 15% for POV 2.0 and 22%
for Polyray compared to using spheres only (-o...see CL options below).
Minimum # of spheres per branch ? [1]:
This number will limit the minimum size of any new segments created.
Enter higher values for less 'detail'.
Global scaling ? [1.0]:
This scales the overall size of the plant. The default size is about
10 units in each direction. If you are using POV-Ray v1.0, see the
note on scaling below.
****************************EXTENDED OPTIONS
(-e...see command line options below)
Disregard branches longer than ? [60]:
This option allows you to start the plant at a 'level' other than the
'base'. If you accept the default value for "Max # spheres" (above)
of 60, and then enter 60 for this parameter, the program would NOT
output ANY branches that are 60 spheres or 'longer'. This allows you
to out to output an object that looks like more than 1 plant. NOTE that
you have to translate the object in the -Y direction as each branch is
where it would be if there was a full plant. Experiment with this one.
Default is the same value as "Max # spheres" (above), which will create
a complete plant.
Divide branches by ? [3.0]:
This controls the size of each new level of branches and the overall
detail of the object. If you use a value much smaller than the default
value of 3.0, the files can become very 'detailed', but HUGE. If you
accept all defaults, the plant will consist of 4 60 sphere branches, each
having 4 20 sphere branches (60 / 3.0), each having 4 6 sphere branches
and so on. Note that the division is INTEGER, so the program will 'round'
off the numbers.
Radial distortion (PI * x) ? [1.0]:
This value is wired to PI, which is used to calculate the basic x z
geometry of the plant. You can get some interesting effects by entering
values in the 0.7 to 0.9 range.
Branch rotation factor ? [1.0]:
This controls the rate and direction of the bending of the plant.
Overall noise factor ? [1.0]:
This controls the random variation of the path of the branches. Enter
a very low value, around 0.001, to see the plant with no X Z variation.
Values higher than 1.5 or so will created a very distorted shape.
Height scaling ? [1.0]:
This is wired to the Y ('height') scaling of the shape. The default
height in the output file is about 10 units. Higher values will make
a tall and slim plant while lower values will make a short and wide plant.
Sphere scaling ? [1.0]:
This value will scale EVERY sphere in the plant object by this amount.
Individual spheres range from 0.21 to 0.11 using the program defaults.
This looks good if you use cone output and enter a value of around 0.4
to 0.75, giving you a plant with very slim and smooth branches.
----------COMMAND LINE PARAMETERS
Usage: plant [options]
Options: -b Write nested bounds in POV or Polyray output.
-d# enables 2D (xz) display of plant... # is the graphics mode.
0=no display 1=640x480 2=800x600 3=1024x768
Default value is 0.
-e Gives you a menu with an extended choice of options.
-o Spheres ONLY (no cones) in output file.
-p# Where # is the precision of the output file numbers.
Range is 3 - 9 with a default precision of 6 decimal places.
-s Include all bounding stats in output file. (-b only)
-t DO NOT write multiple textures in output file.
Defaults are: No bounding boxes.
No display.
No extended menus.
Write spheres and cones (spheres ONLY for POV 1.0)
Precision of 6 decimals in the output file.
No detailed bounding stats in the output file.
Use 4 color texture scheme.
Enter PLANT at the DOS prompt to accept the default command line parameters.
You can hit any key while the object is being generated and the program will
end, but it will still write a partial (and usable) file.
----------TIMING INFO
The times shown below are for rendering the default object with a very low
Noise factor (see above) for object shape consistency. The images were
rendered on a 386/40 with coprocessor and 8 Mb, using POV v1.0 (ibmicb),
POV 2.0 (ibmicb), and Polyray v1.6a. Image size was 320x240 using the
included scene files.
Polyray 1.6a 00:06:44
POV-Ray 1.0 00:16:08 (bounded)
POV-Ray 2.0 00:04:32 (!)
The object consisted of 1,456 spheres.
The defaults were used except for Overall Noise 0.0001 and -o (spheres only).
----------SCALING INFO
I had problems using POV 1.0 if I'd scale the object smaller than around
1 or 2 units square. The object APPEARED to be clipped from the bounds, but
in 'reality' it wasn't. If I scaled it up and moved the camera and light by
the same amount, the image would be fine. I *believe* there is a problem
with POV 1.0, if you scale spheres to a very small size. I'm not sure if
this is POV's code or mine that's making this happen.
This does not appear when the object is at or larger than the default output
size. The default size is about 10 units square. This does not seem to apply
to Polyray or POV 2.0.
----------MISC. INFO
There are a few differences in the output options depending on the
format you are using. As stated earlier, the POV 1.0 option WILL NOT output
cones. It is very possible to implement but, what can I say, I got 2.0 and
so should you !! It's so much more flexible and faster. If you're still
using 1.0, you MUST get 2.0 for the speed alone.
Polyray and POV 2.0 formats allow you to output without textures, allowing
YOU to specify a 'global' texture for the entire plant in the .POV (or .PI)
file. I feel this is a flexible option as it allows you to color or image
map the plant as a whole. Previous versions of PLANT applied a separate
'copy' of the texture to each sphere (!) in each branch. If you accept
the default 4 color texture scheme, note that the texture is applied to each
branch (union), instead of each sphere in each union. I feel this is also a
better solution. If you are using POV 1.0, this option will use the dark
green texture for each branch (same method as 4 color). This is because the
plant is written as a COMPOSITE and you can not texture a composite as a
whole, only the individual 'objects' in a composite. (hurray for 2.0!!!)
The bounding box output is now optional, as POV 2.0 will render a union
MUCH faster without the bounds. If you're still using 1.0, then you should
specify -b on the command line to enable bounding of the object, as 1.0 does
not use autobounds as 2.0 does. You can also use bounds for Polyray, but the
speed increase is marginal, at best (approx. 6%).
----------COPYRIGHT STATEMENT
PLANT is a freely distributable program. There is no charge or
registration fee associated with the use of PLANT.
The author retains the copyright to the program and authorizes free
distribution, but makes no guarantees or warranties with this program and
claims no responsibility for any damages or losses incurred through use
of this program.
---------MISC.
PLANT.EXE v0.50a is written in MS C++ v8.00. It is not at all optimized
as it is still in an early stage.
I would like to thank Eric Barish, Dan Farmer, and Dan Richardson for their
help and suggestions on the bounding issue.... Thanks a bunch, guys !!!
If you have any questions, comments, suggestions, or otherwise, please let
me know as I would like to hear them and possibly incorporate any ideas into
a newer version.
Enjoy !
Rob Bryerton
CIS[73747,433] GRAPHDEV forum